﻿using System;

namespace HossMvp.Core
{
    public interface IContentProvider
    {
        NameDecorator Decorator { get; }

        void Set<T>(string name, T value);

        T Get<T>(string name);

        void RegisterAction(string actionName, Func<ActionContext, ActionResult> body);

        void RegisterActions();

        void RegisterControls<T>(object container);

        void UnregisterAction(string actionName);

        ActionResult ExecuteAction(string actionName, ActionContext context);
    }
}